1. Field of the Invention
The present invention relates to a method for reducing visual artefacts in a frame of a digital video signal, which is coded by blocks and then decoded, a block type being defined according to the coding method for a block selected from a predetermined set of coding types, in which filtering is performed to reduce visual artefacts due to a block boundary. The present invention also relates to a device for reducing visual artefacts in a frame of a digital video signal, which is coded by blocks and then decoded, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, the device comprising a filter for reducing visual artefacts due to a block boundary. Furthermore, the present invention relates to a video encoder comprising means for coding and decoding a digital video signal by blocks, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, which encoder comprises a filter for reducing visual artefacts due to a block boundary. The present invention also relates to a video decoder comprising means for reducing visual artefacts in a frame of a digital video signal, which is coded by blocks and then decoded, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, which video decoder comprises a filter for reducing visual artefacts due to a block boundary. The present invention also relates to a video codec comprising means for coding and decoding a digital video signal by blocks, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, which video codec comprises a filter for reducing visual artefacts due to a block boundary. The present invention also relates to a mobile terminal comprising a video codec, which comprises means for coding and decoding a digital video signal by blocks, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, which video codec comprises a filter for reducing visual artefacts due to a block boundary. The present invention further relates to a storage medium for storing a software program comprising machine executable steps for coding and decoding a digital video signal by blocks, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, for reducing visual artefacts due to a block boundary by filtering.
2. Brief Description of Related Developments
A transmission system like that shown in FIG. 1 is generally used for transferring a digital video image in compressed form. The video image is formed of sequential frames. In some prior art video transmission systems, for example those according to the ITU-T H.261/H.263 recommendations, at least three frame types are defined: an I-frame (Intra), a P-frame (Predicted or Inter), and a B-frame (Bi-directional). The I-frame is generated solely on the basis of information contained in the image itself, wherein at the receiving end, this I-frame can be used to form the entire image. P-frames are formed on the basis of a preceding I-frame or P-frame, wherein at the receiving stage a preceding I-frame or P-frame is correspondingly used together with the received P-frame in order to reconstruct the image. In the composition of P-frames, for instance, motion compensation is used to compress the quantity of information. B-frames are formed on the basis of one or more preceding P-frames or I-frames and/or one or more following P- or I-frames.
The frames are further divided into blocks. One or more such blocks forms a block region. There can generally be four different region types: Intra region, copy region, coded region, and not-coded region. An intra region is a block region in which the blocks are coded independently without reference to any other frame. A copy region consists of blocks which are obtained by copying the content of the reference frame into exactly the same location without any motion compensated prediction. A coded region consists of blocks which are obtained using motion compensated prediction and prediction error coding. The prediction error is a difference between the pixel values of the actual frame and a reconstructed frame which is formed in the coding/decoding system using motion compensated prediction, as will be described in further detail later in the text. The prediction error is coded and sent to a receiver. A not-coded region is obtained using motion compensated prediction only. In fact the not-coded region is equivalent to a copy region if the motion information equals 0. All the block regions of one frame are not necessarily similar types, but one frame can comprise block regions which are of different types.
Referring to FIG. 1, which illustrates a typical encoding and decoding system (codec) used, for example, in the transmission of digital video, a current video frame to be coded comes to the transmission system 10 as input data In(x,y). The input data In(x,y) typically takes the form of pixel value information. In the differential summer 11 it is transformed into a prediction error frame En(x,y) by subtracting from it a prediction frame Pn(x,y) formed on the basis of a previous image. The prediction error frame is coded in block 12 in a manner described hereinafter, and the coded prediction error frame is directed to a multiplexer 13. To form a new prediction frame, the coded prediction error frame is also directed to a decoder 14, which produces a decoded prediction error frame Ên(x,y) which is summed in a summer 15 with the prediction frame Pn(x,y), resulting in a decoded frame În(x,y). The decoded frame is saved in a frame memory 16. To code the next frame, the frame saved in the frame memory 16 is read as a reference frame Rn(x,y) and is transformed into a new prediction frame Pn(x,y) in a motion compensation and prediction block 17, according to the formula:Pn(x,y)=Rn[x+Dx(x,y),y+Dy(x,y)]  (1)
The pair of numbers [Dx(x,y), Dy(x,y)] is called the motion vector of the pixel at location (x,y) and the numbers Dx(x,y) and Dy(x,y) are the horizontal and vertical shifts of the pixel. They are calculated in a motion estimation block 18. The set of motion vectors [Dx(•), Dy(•)] consisting of all motion vectors related to the pixels of the frame to be compressed is also coded using a motion model comprising basis functions and coefficients. The basis functions are known to both the encoder and the decoder. The coefficient values are coded and directed to the multiplexer 13, which multiplexes them into the same data stream with the coded prediction error frame for sending to a receiver. In this way the amount of information to be transmitted is dramatically reduced.
Some frames can be partly, or entirely, so difficult to predict that it is not practical to use motion compensated prediction when coding them. These frames or parts of frames are coded using intra-coding without prediction, and therefore it is not necessary to send motion vector information relating to them to the receiver.
In the receiver system 20, a demultiplexer 21 separates the coded prediction error frames and the motion information transmitted by the motion vectors and directs the coded prediction error frames to a decoder 22. The decoder 22 produces a decoded prediction error frame Ên(x,y), which is summed in a summer 23 with the prediction frame Pn(x,y) formed on the basis of a previous frame, resulting in a decoded frame În(x,y). The decoded frame is directed to an output 24 of the decoder and at the same time saved in a frame memory 25. When decoding the next frame, the frame saved in the frame memory is read as a reference frame and transformed into a new prediction frame in the motion compensation and prediction block 26, according to formula (1) presented above.
The coding method applied in block 12 to the coding of the prediction error frame or to the intra-coding of a frame or part of a P-frame to be sent without prediction, is generally based on a transformation, the most common of which is the Discrete Cosine Transformation, DCT. The frame is divided into adjacent blocks having a size of e.g. 8×8 pixels. In coding and decoding, the blocks are processed independent of one another. The transformation is calculated for the block to be coded, resulting in a series of terms. The coefficients of these terms are quantized on a discrete scale in order that they can be processed digitally. Quantization causes rounding errors, which can become visible in an image reconstructed from blocks, so that there is a discontinuity of pixel values at the boundary between two adjacent blocks. Because a certain decoded frame is used for calculating the prediction frame for subsequent predicted frames, these errors can be propagated in sequential frames, thus causing visible edges in the image reproduced by the receiver. Image errors of this type are called blocking artefacts.
Some prior art methods are known for removing blocking artefacts. These methods are characterized by the following features:                determining which pixel/pixels require value correction in order to remove the blocking artefact,        determining a suitable low-pass filtering for each pixel to be corrected, based on the values of other pixels contained by a filtering window placed around the pixel,        calculating a new value for the pixel to be corrected, and rounding the new value to the closest digitized pixel value.        
Factors that influence the selection of a filter and the decision whether to use filtering can be, for example, the difference between the values of pixels across the block boundary, the size of the quantization step of the coefficients received as the transformation result, and the difference of the pixel values on different sides of the pixel being processed.
It has been found that prior art methods tend to remove lines that belong to real features of the image. On the other hand, prior art methods are not always capable of removing all blocking artefacts.